how does iterable work